#ifndef _BONUS_H_
#define _BONUS_H_

#ifndef EMBED
	#include <stdlib.h>
#endif
#include "videog.h"
#include "utypes.h"

/** @defgroup Bonus Bonus
 * @{
 *
 * @brief Funções que gerem os bónus.
 */
 
#define BONUS 0x40
#define BONUS_BOM 0x10
#define BONUS_MAU 0x20

#define NUM_BONUS 6
#define BONUS_PARAR_BOLAS 0x51
#define BONUS_PARAR_JOGADOR 0x62
#define BONUS_ABRANDAR 0x53
#define BONUS_ACELERAR 0x64
#define BONUS_INVENCIVEL 0x55
#define BONUS_MISSIL 0x66

#define TEMPO_BONUS_PARAR_BOLAS 5000
#define TEMPO_BONUS_PARAR_JOGADOR 600
#define TEMPO_BONUS_ABRANDAR 10000
#define TEMPO_BONUS_ACELERAR 3000
#define TEMPO_BONUS_INVENCIVEL 8000
#define TEMPO_BONUS_MISSIL 5000

#define RAIO_BONUS 7
#define COR_BONUS RED | GREEN

/** Estrutura de um Bonus. */
typedef struct {
	int x;
	int y;
	int raio;
	char tipo;
	int cor;
} Bonus;

/** Cria um novo bónus e devolve um apontador para o bónus criado. */
Bonus* newBonus(int x, int y, int raio, char tipo, int cor);

/** Desenha um bónus para a memória indicada. */
void drawBonus(Bonus* b, char* base);

/** Apaga um bónus da memória indicada. */
void eraseBonus(Bonus* b, char* base);

#endif
